#Boa:Frame:Frame_Funcionarios

import wx

def create(parent):
    return Frame_Funcionarios(parent)

[wxID_FRAME_FUNCIONARIOS, wxID_FRAME_FUNCIONARIOSBUTTON1, 
 wxID_FRAME_FUNCIONARIOSBUTTON2, wxID_FRAME_FUNCIONARIOSBUTTON3, 
 wxID_FRAME_FUNCIONARIOSBUTTON4, wxID_FRAME_FUNCIONARIOSLISTCTRL1, 
 wxID_FRAME_FUNCIONARIOSPANEL1, wxID_FRAME_FUNCIONARIOSSTATICBITMAP1, 
 wxID_FRAME_FUNCIONARIOSSTATICBOX1, wxID_FRAME_FUNCIONARIOSSTATICTEXT1, 
 wxID_FRAME_FUNCIONARIOSTEXTCTRL1, 
] = [wx.NewId() for _init_ctrls in range(11)]

class Frame_Funcionarios(wx.Frame):
    def _init_coll_listCtrl1_Columns(self, parent):
        # generated method, don't edit

        parent.InsertColumn(col=0, format=wx.LIST_FORMAT_LEFT, heading=u'Nome',
              width=271)
        parent.InsertColumn(col=1, format=wx.LIST_FORMAT_LEFT, heading=u'Cargo',
              width=-2)

    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FRAME_FUNCIONARIOS,
              name=u'Frame_Funcionarios', parent=prnt, pos=wx.Point(498, 88),
              size=wx.Size(657, 642),
              style=wx.TAB_TRAVERSAL | wx.DEFAULT_FRAME_STYLE,
              title=u'Funcion\xe1rios')
        self.SetClientSize(wx.Size(649, 609))

        self.panel1 = wx.Panel(id=wxID_FRAME_FUNCIONARIOSPANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(649, 609),
              style=wx.TAB_TRAVERSAL)
        self.panel1.SetBackgroundColour(wx.Colour(255, 255, 255))

        self.staticBitmap1 = wx.StaticBitmap(bitmap=wx.Bitmap(u"Imagens/logotipo300dpi-30%.jpg",
              wx.BITMAP_TYPE_JPEG), id=wxID_FRAME_FUNCIONARIOSSTATICBITMAP1,
              name='staticBitmap1', parent=self.panel1, pos=wx.Point(74, 416),
              size=wx.Size(500, 176), style=0)
        self.staticBitmap1.Center(wx.HORIZONTAL)

        self.staticBox1 = wx.StaticBox(id=wxID_FRAME_FUNCIONARIOSSTATICBOX1,
              label=u"Cristina's Hair - Cadastro de Funcion\xe1rios",
              name='staticBox1', parent=self.panel1, pos=wx.Point(16, 16),
              size=wx.Size(608, 371), style=0)
        self.staticBox1.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL,
              False, u'Tahoma'))

        self.listCtrl1 = wx.ListCtrl(id=wxID_FRAME_FUNCIONARIOSLISTCTRL1,
              name='listCtrl1', parent=self.panel1, pos=wx.Point(184, 136),
              size=wx.Size(424, 208), style=wx.LC_REPORT)
        self._init_coll_listCtrl1_Columns(self.listCtrl1)
        self.listCtrl1.Bind(wx.EVT_LIST_ITEM_ACTIVATED,
              self.OnListCtrl1ListItemActivated,
              id=wxID_FRAME_FUNCIONARIOSLISTCTRL1)

        self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME_FUNCIONARIOSTEXTCTRL1,
              name='textCtrl1', parent=self.panel1, pos=wx.Point(184, 72),
              size=wx.Size(312, 21), style=wx.TE_PROCESS_ENTER, value=u'')
        self.textCtrl1.Bind(wx.EVT_TEXT_ENTER, self.OnTextCtrl1TextEnter,
              id=wxID_FRAME_FUNCIONARIOSTEXTCTRL1)

        self.button1 = wx.Button(id=wxID_FRAME_FUNCIONARIOSBUTTON1,
              label=u'Pesquisar', name='button1', parent=self.panel1,
              pos=wx.Point(512, 72), size=wx.Size(80, 24), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
              id=wxID_FRAME_FUNCIONARIOSBUTTON1)

        self.staticText1 = wx.StaticText(id=wxID_FRAME_FUNCIONARIOSSTATICTEXT1,
              label=u'Pesquisar Funcion\xe1rios', name='staticText1',
              parent=self.panel1, pos=wx.Point(184, 48), size=wx.Size(147, 16),
              style=0)
        self.staticText1.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Tahoma'))

        self.button2 = wx.Button(id=wxID_FRAME_FUNCIONARIOSBUTTON2,
              label=u'Novo Funcion\xe1rio', name='button2', parent=self.panel1,
              pos=wx.Point(32, 56), size=wx.Size(128, 56), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnButton2Button,
              id=wxID_FRAME_FUNCIONARIOSBUTTON2)

        self.button3 = wx.Button(id=wxID_FRAME_FUNCIONARIOSBUTTON3,
              label=u'Excluir Funcion\xe1rio', name='button3',
              parent=self.panel1, pos=wx.Point(32, 136), size=wx.Size(128, 56),
              style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnButton3Button,
              id=wxID_FRAME_FUNCIONARIOSBUTTON3)

        self.button4 = wx.Button(id=wxID_FRAME_FUNCIONARIOSBUTTON4,
              label=u'Voltar Para o Menu', name='button4', parent=self.panel1,
              pos=wx.Point(32, 288), size=wx.Size(128, 56), style=0)
        self.button4.Bind(wx.EVT_BUTTON, self.OnButton4Button,
              id=wxID_FRAME_FUNCIONARIOSBUTTON4)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.parent = parent

        self.OnButton1Button(None)

#botao cadastrar novo funcionario
    def OnButton2Button(self, event):
        from Dialog_CadastrarFuncionario import *
        janela = CadastrarFuncionario(self)
        janela.ShowModal()
        
#botao voltar para o menu
    def OnButton4Button(self, event):
        self.Close()



    #Metodo que Preenche a tabela com os nomes e precos dos funcionarios pesquisados
    def PreencherTabela(self, ListaFuncionarios):
        import sys
        lista = self.listCtrl1
        
        #Deleta todos os item da tabela
        lista.DeleteAllItems()
        
        if ListaFuncionarios <> False:
            #Pega os dados de cada Funcionario e joga na tabela
            for i in ListaFuncionarios:
                
                index = lista.InsertStringItem(sys.maxint,'0')
                if (float(index)/2).is_integer() == False:
                    self.listCtrl1.SetItemBackgroundColour(index, (230,230,230))
                lista.SetStringItem(index, 0, str(i.GetNome()))
                lista.SetStringItem(index, 1, str(i.GetCargo()))
                
            

#Pesquisar
    def OnButton1Button(self, event):
        from Class_ControleFuncionario import *
        Controle = ControleFuncionario()
        
        #Pega o valor do campo da pesquisa e o Campo a ser pesquisado (Nome, Cargo)
        Dado = self.textCtrl1.GetValue()
        
        #Pesquisa todos os funcionarios que possuam pelo menos uma parte do 
        #dados a ser pesquisado igual ao que foi digitado na caixa de pesquisa
        self.ListaFuncionarios = Controle.PesquisarFuncionariosPorNome(Dado)
        
        #Envia todos os dados da ListaFuncionarios pra o metodo que preenche a tabela
        self.PreencherTabela(self.ListaFuncionarios)


        
#Funcao ativada ao pressionar ENTER na caixa de Pesquisa
    def OnTextCtrl1TextEnter(self, event):
        self.OnButton1Button(event)

#Editar Funcionario (duplo clique em algum item da lista)
    def OnListCtrl1ListItemActivated(self, event):
        from Dialog_EditarFuncionario import *
   
        #Descobre o Funcionario selecionado
        pos = self.listCtrl1.GetFocusedItem()
        Funcionario =  self.ListaFuncionarios[pos]
        
        #Criar o Dialog Editar Funcionario passando o Objeto Funcionario a ser editado
        Janela = EditarFuncionarios(self, Funcionario)
        Janela.ShowModal()
        
        self.OnButton1Button(None)

#Excluir Funcionario
    def OnButton3Button(self, event):
        from Class_ControleFuncionario import *
        controle = ControleFuncionario()
        #Descobre o Funcionario selecionado
        pos = self.listCtrl1.GetFocusedItem()
        Funcionario =  self.ListaFuncionarios[pos]
        
        confirmacao = controle.RemoverFuncionario(Funcionario)
        
        if confirmacao == True:
            m = "Funcionario excluido com sucesso!"
            t = "Exclusao de Funcionario"
            wx.MessageBox(m,t,wx.OK)
        
        self.OnButton1Button(event)
        
        
